The present invention relates to the field of computer graphics, and in particular to methods and apparatus for creating, modifying, and using components to create computer graphics productions. Many computer graphic images are created by mathematically modeling the interaction of light with a three dimensional scene from a given viewpoint. This process, called rendering, generates a two-dimensional image of the scene from the given viewpoint, and is analogous to taking a photograph of a real-world scene. Animated sequences can be created by rendering a sequence of images of a scene as the scene is gradually changed over time. A great deal of effort has been devoted to making realistic looking and artistically compelling rendered images and animations.
Computer graphics images, animations, and other productions involving computer graphics, such as interactive entertainment software, are created from a number of different components. Generally, components include any data and instructions used to create products and applications that include computer graphics. Components can include three-dimensional models of geometry; texture maps and other arrays of data; lighting and shading programs used to determine the visual appearance of models; and animation data and deformer functions used to specify changes and motion over time.
Components typically include one or more attributes containing data associated with the component. Attributes can specify any static or varying property of a component. For example, a component may be a model of a sphere. Attributes of this example component could describe properties such as the radius of the sphere and the location of the center of the sphere. Different types of components may include different numbers and types of attributes. Components are often related to each other with complex cross-reference, inheritance, and dependency relationships.
Previously, digital productions created animations by specifying changes in attributes as a function of time. For example, a model of a sphere may be animated by specifying the change in its location attribute as a function of time. Software can then use this data to specify computer graphics data for multiple frames at different time and then render images for each frame.
As digital productions become more complicated, attribute values of components may be associated with parameters other than time. Multiple users may collaboratively author attribute values and components. Components and attributes may be grouped in different ways to improve usability and to reuse components. Portions of scenes may be created and rendered separately and then combined into a final image for a frame. Users may experiment with variations and alternate versions of scenes to determine the best result.
There is an unmet need for a user interface that enables users to view and manipulate data in association with parameters other than or in addition to time. There is also an unmet need for a user interface that clearly presents complex attribute and component relationships to users.